package com.ruoyi.store.service;

import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.system.api.domain.store.WarehouseGoods;
import com.ruoyi.system.api.dto.WarehouseGoodsDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 库存信息Service接口
 *
 * @author wl
 * @date 2024-10-25
 */
public interface IWarehouseGoodsService {
    /**
     * 查询库存信息
     *
     * @param id 库存信息主键
     * @return 库存信息
     */
    public AjaxResult selectWarehouseGoodsById(Integer id);

    BigDecimal getAllPrice();

    /**
     * 查询库存信息列表
     *
     * @param warehouseGoodsDTO 库存信息
     * @return 库存信息集合
     */
    public List selectWarehouseGoodsList(WarehouseGoodsDTO warehouseGoodsDTO);

    public List<WarehouseGoods> takingList(WarehouseGoods warehouseGoods);

    /**
     * 新增库存信息
     *
     * @param warehouseGoods 库存信息
     * @return 结果
     */
    public AjaxResult insertWarehouseGoods(WarehouseGoods warehouseGoods);

    /**
     * 修改库存信息
     *
     * @param warehouseGoods 库存信息
     * @return 结果
     */
    public AjaxResult updateWarehouseGoods(WarehouseGoods warehouseGoods);

    /**
     * 批量删除库存信息
     *
     * @param ids 需要删除的库存信息主键集合
     * @return 结果
     */
    public AjaxResult deleteWarehouseGoodsByIds(Integer[] ids);

    /**
     * 删除库存信息信息
     *
     * @param id 库存信息主键
     * @return 结果
     */
    public AjaxResult deleteWarehouseGoodsById(Integer id);

    AjaxResult selectWarehouseGoodsByGoodsId(Integer goodsId);

    AjaxResult getStockByGoodsIdHouseId(Integer goodsId, Integer houseId);

    Integer getStockByGoodsId(Integer goodsId);
}
